package easy;

/**
 * 如果数组是单调递增或单调递减的，那么它是 单调 的。
 * 如果对于所有 i <= j，nums[i] <= nums[j]，那么数组 nums 是单调递增的。 如果对于所有 i <= j，nums[i]> = nums[j]，那么数组 nums 是单调递减的。
 * 当给定的数组 nums 是单调数组时返回 true，否则返回 false。
 
 * 示例 1：
 *
 * 输入：nums = [1,2,2,3]
 * 输出：true
 * 示例 2：
 *
 * 输入：nums = [6,5,4,4]
 * 输出：true
 * 示例 3：
 *
 * 输入：nums = [1,3,2]
 * 输出：false
 */

public class test22 {
    public static void main(String[] args) {
        test22 test22 = new test22();
        int[] nums = {1, 3, 2};
        System.out.println(test22.isMonotonic(nums));
    }

    public boolean isMonotonic(int[] nums) {
        int z = 0, f = 0;
        for (int i = 0; i < nums.length - 1; i++) {
            if (nums[i + 1] >= nums[i]) {
                z++;
            }
            if (nums[i + 1] <= nums[i]) {
                f++;
            }
        }
        if (z + 1 == nums.length || f + 1 == nums.length) {
            return true;
        }
        return false;
    }

    public boolean isMonotonic2(int[] nums) {
        boolean inc = true, dec = true;
        int n = nums.length;
        for (int i = 0; i < n - 1; ++i) {
            if (nums[i] > nums[i + 1]) {
                inc = false;
            }
            if (nums[i] < nums[i + 1]) {
                dec = false;
            }
        }
        return inc || dec;
    }
}
